Skip to content

鼠标位置回调类型 - MousePosCallback

类型简介

MousePosCallback 用于向插件返回 窗口内真实鼠标坐标(与 MoveTo 参数同一坐标系)。插件在 真实轨迹 MoveTo 的终点判断中读取该坐标,与 GetCursorPos 返回的系统坐标求差后矫正移动目标。

不影响 GetCursorPos 的返回值。

类型定义

cpp
typedef int64_t (OLA_CALL_TYPE* MousePosCallback)(int64_t user_data);

参数说明

参数名类型说明
user_data长整数型SetMousePosCallback 注册时传入的上下文,可为 0。

返回值

返回值说明
-1无效(OLA_POINT_INVALID),本次不矫正,走原 MoveTo 逻辑
-1有效坐标,格式为 PackPoint 打包结果

坐标系与 MoveTo / GetCursorPos 一致:

配套工具函数

回调返回值请使用 PackPoint / UnpackPoint 系列接口打包解包,禁止 使用 LOWORD / HIWORD(负坐标会出错)。

注意事项

项目说明
回调在 MoveTo 轨迹线程中 同步回调在 MoveTo 轨迹线程中 同步 调用,须快速返回(建议 < 1ms),禁止阻塞 IO。
回调内 不要 再调用 MoveTo回调内 不要 再调用 MoveTo,避免死锁。
[SetMousePosCallback](/oSetMousePosCallback 仅本地进程 有效,远程实例不支持函数指针。远程可用 SetWindowCursor
优先级SetWindowCursor 同时存在时,光标识图优先
ClearMousePosCallback销毁 OLA 对象时会自动 ClearMousePosCallback